#ifndef _CMESHPLOT_H_
#define _CMESHPLOT_H_

#include <buola/chart/plots/cxyzplot.h>
#include <buola/chart/c3dseries.h>

#include <vector>
#include <set>

namespace buola { namespace chart {

class CMeshPlot : public CXYZPlot
{
public:
    CMeshPlot();
    virtual ~CMeshPlot();

public:
/////////////// interface /////////////////
    void SetSeries(P3DSeries pSeries);

    void SetColor(const img::CColor &pColor);

    void SetLineWidth(double pWidth);
    void SetLineColor(const img::CColor &pColor);

    virtual const std::wstring &GetName()   {   return mSeries->mName;  }
    virtual void SetName(const std::wstring &pName);
    virtual img::CColor GetColor()           {   return mLineColor;  }

    virtual double GetMinX()    {   return mSeries->mMin.x(); }
    virtual double GetMinPosX() {   return mSeries->mMinPos.x();  }
    virtual double GetMaxX()    {   return mSeries->mMax.x(); }
    virtual double GetMinY()    {   return mSeries->mMin.y(); }
    virtual double GetMinPosY() {   return mSeries->mMinPos.y();  }
    virtual double GetMaxY()    {   return mSeries->mMax.y(); }
    virtual double GetMinZ()    {   return mSeries->mMin.z(); }
    virtual double GetMinPosZ() {   return mSeries->mMinPos.z();  }
    virtual double GetMaxZ()    {   return mSeries->mMax.z(); }

    virtual void Draw(CXYZChartContext &pC);
protected:
/////////////////// properties ////////////////////
    P3DSeries mSeries;

    img::CColor mLineColor;
    double mLineWidth;
};

/*namespace chart*/ } /*namespace buola*/ }

#endif
